/*******************************************************************************
 * Copyright (c) 2014 lifeng (lifengsofts@gmail.com)
 * See the file licenses/license.txt for copying permission.
 ******************************************************************************/
package cn.woblog.android.httputils.callback.impl;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

import com.google.gson.reflect.TypeToken;

import cn.woblog.android.httputils.callback.AbstractCallback;
import cn.woblog.android.httputils.utils.JsonParse;

public abstract class JsonCallback<T> extends AbstractCallback<T> {
	// private Class<T> clazz;
	// private Type type;

	@Override
	protected T bindData(String json) {
		Type type = ((ParameterizedType) getClass().getGenericSuperclass())
				.getActualTypeArguments()[0];
		return JsonParse.fromJson(json, type);
		// if (clazz != null) {
		// return JsonParse.fromJson(json, clazz);
		// } else if (type != null) {
		// return JsonParse.fromJson(json, type);
		// } else {
		// return null;
		// }
	}

	// public JsonCallback<T> setReturnType(TypeToken<T> tyToken) {
	// this.type = tyToken.getType();
	// return this;
	// }
	//
	// public JsonCallback<T> setReturnClass(Class<T> clazz) {
	// this.clazz = clazz;
	// return this;
	// }
}
